package model

import (
	"manager/model/entity"
)

// ContentCreateRequest 创建现场数据
type ContentCreateRequest struct {
	EbikeTypeId int64 `json:"ebike_type_id"`

	Type int `json:"type"`

	Kind int `json:"kind"`

	Title string `json:"title"`

	Content string `json:"content"`

	Country string `json:"country"`

	Language string `json:"language"`

	Url string `json:"url"`

	UpdatedAt int64 `json:"updated_at"`
}

// ContentUpdateRequest 更新现场数据
type ContentUpdateRequest struct {
	Id int64 `json:"id"`

	EbikeTypeId *int64 `json:"ebike_type_id"`

	Type *int `json:"type"`

	Kind *int `json:"kind"`

	Title *string `json:"title"`

	Content *string `json:"content"`

	Country *string `json:"country"`

	Language *string `json:"language"`

	Url *string `json:"url"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt *int64 `json:"updated_at"`
}

// ContentListRequest 列表现场数据
type ContentListRequest struct {
	Index int `json:"index"`
	Size  int `json:"size"`

	Id int64 `json:"id"`

	EbikeTypeId *int64 `json:"ebike_type_id"`

	Type *int `json:"type"`

	Kind *int `json:"kind"`

	Title *string `json:"title"`

	Content *string `json:"content"`

	Country *string `json:"country"`

	Language *string `json:"language"`

	Url *string `json:"url"`

	UpdatedAt *int64 `json:"updated_at"`
}

// ContentListResponse 列表回包数据
type ContentListResponse struct {
	Total int            `json:"total"`
	List  []*ContentInfo `json:"list"`
}

// ContentInfoRequest 列表现场数据
type ContentInfoRequest struct {
	Id int64 `json:"id"`

	EbikeTypeId *int64 `json:"ebike_type_id"`

	Type *int `json:"type"`

	Kind *int `json:"kind"`

	Title *string `json:"title"`

	Content *string `json:"content"`

	Country *string `json:"country"`

	Language *string `json:"language"`

	Url *string `json:"url"`

	UpdatedAt *int64 `json:"updated_at"`
}

// ContentInfo 详细数据
type ContentInfo struct {
	Id int64 `json:"id"`

	EbikeTypeId int64 `json:"ebike_type_id"`

	Type int `json:"type"`

	Kind int `json:"kind"`

	Title string `json:"title"`

	Content string `json:"content"`

	Country string `json:"country"`

	Language string `json:"language"`

	Url string `json:"url"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt int64 `json:"updated_at"`
}

// ContentDeleteRequest 删除现场数据
type ContentDeleteRequest struct {
	Id int64 `json:"id"`
}

// ContentsEntityToDto entity数据转换
func ContentsEntityToDto(contents []*entity.Content) []*ContentInfo {
	out := make([]*ContentInfo, 0, len(contents))
	for _, c := range contents {
		out = append(out, ContentEntityToDto(c))
	}
	return out
}

// ContentEntityToDto entity数据转换
func ContentEntityToDto(e *entity.Content) *ContentInfo {
	return &ContentInfo{

		Id: e.Id,

		EbikeTypeId: e.EbikeTypeId,

		Type: e.Type,

		Kind: e.Kind,

		Title: e.Title,

		Content: e.Content,

		Country: e.Country,

		Language: e.Language,

		Url: e.Url,

		CreatedAt: e.CreatedAt,

		UpdatedAt: e.UpdatedAt,
	}
}
